package com.cn.mmd.model;

import java.util.ArrayList;
import java.util.List;

public class QuestionnaireResultTemplateExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public QuestionnaireResultTemplateExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andQuestionidIsNull() {
            addCriterion("questionId is null");
            return (Criteria) this;
        }

        public Criteria andQuestionidIsNotNull() {
            addCriterion("questionId is not null");
            return (Criteria) this;
        }

        public Criteria andQuestionidEqualTo(Integer value) {
            addCriterion("questionId =", value, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidNotEqualTo(Integer value) {
            addCriterion("questionId <>", value, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidGreaterThan(Integer value) {
            addCriterion("questionId >", value, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidGreaterThanOrEqualTo(Integer value) {
            addCriterion("questionId >=", value, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidLessThan(Integer value) {
            addCriterion("questionId <", value, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidLessThanOrEqualTo(Integer value) {
            addCriterion("questionId <=", value, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidIn(List<Integer> values) {
            addCriterion("questionId in", values, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidNotIn(List<Integer> values) {
            addCriterion("questionId not in", values, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidBetween(Integer value1, Integer value2) {
            addCriterion("questionId between", value1, value2, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionidNotBetween(Integer value1, Integer value2) {
            addCriterion("questionId not between", value1, value2, "questionid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidIsNull() {
            addCriterion("questionnaireId is null");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidIsNotNull() {
            addCriterion("questionnaireId is not null");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidEqualTo(Integer value) {
            addCriterion("questionnaireId =", value, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidNotEqualTo(Integer value) {
            addCriterion("questionnaireId <>", value, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidGreaterThan(Integer value) {
            addCriterion("questionnaireId >", value, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidGreaterThanOrEqualTo(Integer value) {
            addCriterion("questionnaireId >=", value, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidLessThan(Integer value) {
            addCriterion("questionnaireId <", value, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidLessThanOrEqualTo(Integer value) {
            addCriterion("questionnaireId <=", value, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidIn(List<Integer> values) {
            addCriterion("questionnaireId in", values, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidNotIn(List<Integer> values) {
            addCriterion("questionnaireId not in", values, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidBetween(Integer value1, Integer value2) {
            addCriterion("questionnaireId between", value1, value2, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnaireidNotBetween(Integer value1, Integer value2) {
            addCriterion("questionnaireId not between", value1, value2, "questionnaireid");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberIsNull() {
            addCriterion("questionNumber is null");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberIsNotNull() {
            addCriterion("questionNumber is not null");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberEqualTo(Integer value) {
            addCriterion("questionNumber =", value, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberNotEqualTo(Integer value) {
            addCriterion("questionNumber <>", value, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberGreaterThan(Integer value) {
            addCriterion("questionNumber >", value, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("questionNumber >=", value, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberLessThan(Integer value) {
            addCriterion("questionNumber <", value, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberLessThanOrEqualTo(Integer value) {
            addCriterion("questionNumber <=", value, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberIn(List<Integer> values) {
            addCriterion("questionNumber in", values, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberNotIn(List<Integer> values) {
            addCriterion("questionNumber not in", values, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberBetween(Integer value1, Integer value2) {
            addCriterion("questionNumber between", value1, value2, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestionnumberNotBetween(Integer value1, Integer value2) {
            addCriterion("questionNumber not between", value1, value2, "questionnumber");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentIsNull() {
            addCriterion("questionContent is null");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentIsNotNull() {
            addCriterion("questionContent is not null");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentEqualTo(String value) {
            addCriterion("questionContent =", value, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentNotEqualTo(String value) {
            addCriterion("questionContent <>", value, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentGreaterThan(String value) {
            addCriterion("questionContent >", value, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentGreaterThanOrEqualTo(String value) {
            addCriterion("questionContent >=", value, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentLessThan(String value) {
            addCriterion("questionContent <", value, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentLessThanOrEqualTo(String value) {
            addCriterion("questionContent <=", value, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentLike(String value) {
            addCriterion("questionContent like", value, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentNotLike(String value) {
            addCriterion("questionContent not like", value, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentIn(List<String> values) {
            addCriterion("questionContent in", values, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentNotIn(List<String> values) {
            addCriterion("questionContent not in", values, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentBetween(String value1, String value2) {
            addCriterion("questionContent between", value1, value2, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andQuestioncontentNotBetween(String value1, String value2) {
            addCriterion("questionContent not between", value1, value2, "questioncontent");
            return (Criteria) this;
        }

        public Criteria andOptionsIsNull() {
            addCriterion("options is null");
            return (Criteria) this;
        }

        public Criteria andOptionsIsNotNull() {
            addCriterion("options is not null");
            return (Criteria) this;
        }

        public Criteria andOptionsEqualTo(String value) {
            addCriterion("options =", value, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsNotEqualTo(String value) {
            addCriterion("options <>", value, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsGreaterThan(String value) {
            addCriterion("options >", value, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsGreaterThanOrEqualTo(String value) {
            addCriterion("options >=", value, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsLessThan(String value) {
            addCriterion("options <", value, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsLessThanOrEqualTo(String value) {
            addCriterion("options <=", value, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsLike(String value) {
            addCriterion("options like", value, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsNotLike(String value) {
            addCriterion("options not like", value, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsIn(List<String> values) {
            addCriterion("options in", values, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsNotIn(List<String> values) {
            addCriterion("options not in", values, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsBetween(String value1, String value2) {
            addCriterion("options between", value1, value2, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsNotBetween(String value1, String value2) {
            addCriterion("options not between", value1, value2, "options");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeIsNull() {
            addCriterion("optionsDescribe is null");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeIsNotNull() {
            addCriterion("optionsDescribe is not null");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeEqualTo(String value) {
            addCriterion("optionsDescribe =", value, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeNotEqualTo(String value) {
            addCriterion("optionsDescribe <>", value, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeGreaterThan(String value) {
            addCriterion("optionsDescribe >", value, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeGreaterThanOrEqualTo(String value) {
            addCriterion("optionsDescribe >=", value, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeLessThan(String value) {
            addCriterion("optionsDescribe <", value, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeLessThanOrEqualTo(String value) {
            addCriterion("optionsDescribe <=", value, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeLike(String value) {
            addCriterion("optionsDescribe like", value, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeNotLike(String value) {
            addCriterion("optionsDescribe not like", value, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeIn(List<String> values) {
            addCriterion("optionsDescribe in", values, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeNotIn(List<String> values) {
            addCriterion("optionsDescribe not in", values, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeBetween(String value1, String value2) {
            addCriterion("optionsDescribe between", value1, value2, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andOptionsdescribeNotBetween(String value1, String value2) {
            addCriterion("optionsDescribe not between", value1, value2, "optionsdescribe");
            return (Criteria) this;
        }

        public Criteria andCouplingindexIsNull() {
            addCriterion("couplingIndex is null");
            return (Criteria) this;
        }

        public Criteria andCouplingindexIsNotNull() {
            addCriterion("couplingIndex is not null");
            return (Criteria) this;
        }

        public Criteria andCouplingindexEqualTo(String value) {
            addCriterion("couplingIndex =", value, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexNotEqualTo(String value) {
            addCriterion("couplingIndex <>", value, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexGreaterThan(String value) {
            addCriterion("couplingIndex >", value, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexGreaterThanOrEqualTo(String value) {
            addCriterion("couplingIndex >=", value, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexLessThan(String value) {
            addCriterion("couplingIndex <", value, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexLessThanOrEqualTo(String value) {
            addCriterion("couplingIndex <=", value, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexLike(String value) {
            addCriterion("couplingIndex like", value, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexNotLike(String value) {
            addCriterion("couplingIndex not like", value, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexIn(List<String> values) {
            addCriterion("couplingIndex in", values, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexNotIn(List<String> values) {
            addCriterion("couplingIndex not in", values, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexBetween(String value1, String value2) {
            addCriterion("couplingIndex between", value1, value2, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andCouplingindexNotBetween(String value1, String value2) {
            addCriterion("couplingIndex not between", value1, value2, "couplingindex");
            return (Criteria) this;
        }

        public Criteria andProblemtypesIsNull() {
            addCriterion("problemTypes is null");
            return (Criteria) this;
        }

        public Criteria andProblemtypesIsNotNull() {
            addCriterion("problemTypes is not null");
            return (Criteria) this;
        }

        public Criteria andProblemtypesEqualTo(String value) {
            addCriterion("problemTypes =", value, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesNotEqualTo(String value) {
            addCriterion("problemTypes <>", value, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesGreaterThan(String value) {
            addCriterion("problemTypes >", value, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesGreaterThanOrEqualTo(String value) {
            addCriterion("problemTypes >=", value, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesLessThan(String value) {
            addCriterion("problemTypes <", value, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesLessThanOrEqualTo(String value) {
            addCriterion("problemTypes <=", value, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesLike(String value) {
            addCriterion("problemTypes like", value, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesNotLike(String value) {
            addCriterion("problemTypes not like", value, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesIn(List<String> values) {
            addCriterion("problemTypes in", values, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesNotIn(List<String> values) {
            addCriterion("problemTypes not in", values, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesBetween(String value1, String value2) {
            addCriterion("problemTypes between", value1, value2, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andProblemtypesNotBetween(String value1, String value2) {
            addCriterion("problemTypes not between", value1, value2, "problemtypes");
            return (Criteria) this;
        }

        public Criteria andQuestionstateIsNull() {
            addCriterion("questionState is null");
            return (Criteria) this;
        }

        public Criteria andQuestionstateIsNotNull() {
            addCriterion("questionState is not null");
            return (Criteria) this;
        }

        public Criteria andQuestionstateEqualTo(String value) {
            addCriterion("questionState =", value, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateNotEqualTo(String value) {
            addCriterion("questionState <>", value, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateGreaterThan(String value) {
            addCriterion("questionState >", value, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateGreaterThanOrEqualTo(String value) {
            addCriterion("questionState >=", value, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateLessThan(String value) {
            addCriterion("questionState <", value, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateLessThanOrEqualTo(String value) {
            addCriterion("questionState <=", value, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateLike(String value) {
            addCriterion("questionState like", value, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateNotLike(String value) {
            addCriterion("questionState not like", value, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateIn(List<String> values) {
            addCriterion("questionState in", values, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateNotIn(List<String> values) {
            addCriterion("questionState not in", values, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateBetween(String value1, String value2) {
            addCriterion("questionState between", value1, value2, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestionstateNotBetween(String value1, String value2) {
            addCriterion("questionState not between", value1, value2, "questionstate");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeIsNull() {
            addCriterion("questionDescribe is null");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeIsNotNull() {
            addCriterion("questionDescribe is not null");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeEqualTo(String value) {
            addCriterion("questionDescribe =", value, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeNotEqualTo(String value) {
            addCriterion("questionDescribe <>", value, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeGreaterThan(String value) {
            addCriterion("questionDescribe >", value, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeGreaterThanOrEqualTo(String value) {
            addCriterion("questionDescribe >=", value, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeLessThan(String value) {
            addCriterion("questionDescribe <", value, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeLessThanOrEqualTo(String value) {
            addCriterion("questionDescribe <=", value, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeLike(String value) {
            addCriterion("questionDescribe like", value, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeNotLike(String value) {
            addCriterion("questionDescribe not like", value, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeIn(List<String> values) {
            addCriterion("questionDescribe in", values, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeNotIn(List<String> values) {
            addCriterion("questionDescribe not in", values, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeBetween(String value1, String value2) {
            addCriterion("questionDescribe between", value1, value2, "questiondescribe");
            return (Criteria) this;
        }

        public Criteria andQuestiondescribeNotBetween(String value1, String value2) {
            addCriterion("questionDescribe not between", value1, value2, "questiondescribe");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}